์ŠˆํŒŒ๋ฒ ์ด์Šค Security Definer View

8/20/2025

์ฐธ๊ณ  :
https://supabase.com/docs/guides/database/database-advisors?queryGroups=lint&lint=0010_security_definer_view

์›์ธ

์ŠˆํŒŒ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ทฐ๋ฅผ ๋งŒ๋“ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ SECURITY DEFINER ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค๊ณ  ํ•œ๋‹ค.
ํฌ์ŠคํŠธ๊ทธ๋ ˆ์Šค์—์„œ ๋ทฐ๋Š” SECURITY DEFINER ํ˜น์€ SECURITY INVOKER ์„ค์ •์„ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

SECURITY DEFINER๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ทฐ๋‚˜ ํ•จ์ˆ˜๋Š”
- ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๊ฒƒ๋“ค์„ ๋งŒ๋“  ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
- ์ ์€ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ๋งŽ์€ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์žฅ์ ๊ณผ ๋‹จ์ ์ด ๊ณต์กดํ•œ๋‹ค.
- ํŠนํžˆ ์ŠˆํŒŒ๋ฒ ์ด์Šค์˜ row level security๋ฅผ ๋ฌด๋ ฅํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•ํ•˜๊ฒŒ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ .

ํ•ด๊ฒฐ

๋ทฐ๋ฅผ ๋งŒ๋“ค๋•Œ DDL์— ๋”ฐ๋กœ security definer๊ฐ€ ์•„๋‹Œ security invoker๋กœ ์„ค์ •ํ•˜๋Š” ์ ˆ์„ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

create view public.v_example
	with (security_invoker=on) -- ์ด๊ฑธ ์ถ”๊ฐ€ํ•ด security invoker ๋ทฐ๋กœ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.
	as select
	....